﻿#define _CRT_SECURE_NO_WARNINGS  1
#include <stdio.h>
#include<math.h>
//int main() {
//	float a;
//	a = sqrt(16.0);
//	printf("%lf", a);
//	return 0;
//}

//ret_type fun_name(形式参数) 
//{
//	函数体
//}

//void print() {
//	printf("hello world\n");
//}



//int Add(int x, int y) 
//{
//	return x + y;
//}
//
//int main() {
//	int a = 0;
//	int b = 0;
//	scanf("%d%d", &a, &b);
//	printf("%d\n", Add(a, b));
//	return 0;
//}
//


//编写一个函数，判断数字是奇数还是偶数
//是奇数返回1
//是偶数返回0

//int is_even_number(int n)
//{
//	if (n % 2 == 1)
//		return 1;
//	else
//		return 0;
//}
//
//int main() {
//	int a = 0;
//	scanf("%d", &a);
//	int ret = is_even_number(a);
//	if (ret == 1)
//		printf("奇数\n");
//	else
//		printf("偶数\n");
//}


//这串代码只能返回1
//void test()
//{
//	printf("1\n");
//	int n = 5;
//	if (n % 2 == 1)
//		return;
//	printf("2\n");
//}
//int main()
//{
//	test();
//	return 0;
//}
//
//
////这串代码输入奇数只返回1
////输入偶数返回1，2
//void test(n)
//{
//	printf("1\n");
//	if ( n % 2 == 1)
//		return;
//	printf("2\n");
//}
//int main()
//{
//	int a;
//	scanf("%d", &a);
//
//	test(a);
//	return 0;
//}

 //return返回的值和函数返回类型不⼀致，系统会⾃动将返回的值隐式转换为函数的返回类型。

 //如果函数中存在if等分⽀的语句，则要保证每种情况下都有return返回，否则会出现编译错误。
//int test()
//{
//	int n = 1;
//	if (n == 1)
//	
//		return 3.5;
//	else
//		return -3.5;
//	
//}
//
//int main() {
//	int a = test();
//	printf("%d", a);
//	return 0;
//
//}


////如果某些返回值不明确
//int test()
//{
//	int n = 3;
//	if (n == 1)
//		return 3.5;
//}
//
//int main() {
//	int a = test();
//	printf("%d", a);
//	return 0;
//
//}
////这两段代码的返回值将不一样
//int test()
//{
//	int n = 3;
//	printf("hello\n");
//	if (n == 1)
//		return 3.5;
//}
//
//int main() {
//	int a = test();
//	printf("%d", a);
//	return 0;
//
//}

////不写返回值类型默认是int类型
//test()
//{
//	printf("hello\n");
//}
//
//int main() {
//	int a = test();
//	printf("%d", a);
//	return 0;
//
//}


////创建一个函数使数组中的元素全部改为1
//void set_arr(int arr[10], int sz)
//{
//	int i = 0;
//	for (i = 0;i < sz;i++)
//	{
//		arr[i] = -1;
//	}
//}
//
//void print_arr(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d", arr[i]);
//	}
//	printf("\n");
//}
//
//int main()
//{
//	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	//计算出数组中的元素个数
//	print_arr(arr, sz);
//	//写一个函数用于打印数组内容
//    set_arr(arr, sz);
//	//写一个函数将数组的内容全部置为-1
//	print_arr(arr, sz);
//	//再打印出来
//	return 0;
//}


////二维数组传参
//void print_arr2(int arr[3][5], int r, int c)
//{
//	int i = 0;
//	for (i = 0;i < r;i++)
//	{
//		int j = 0;
//		for (j = 0;j < c;j++)
//		{
//			printf("%d", arr[i][j]);
//		}
//		printf("\n");
//	}
//}
//
//int main() {
//	int arr[3][5] = { 1,2,3,4,5,2,3,4,5,6,3,4,5,6,7 };
//	print_arr2(arr,3,5);
//	return 0;
//}

//输入某年某月，这段代码输出这个月有多少天

//int is_leap_year(int y)
//{
//	if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//		return 1;
//	else
//		return 0;
//}

//int get_days_of_month(int y, int m)
//{
//	int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//	int d = days[m];
//	//闰年的月要特殊处理
//	if (is_leap_year(y) && (m == 2))
//		d += 1;
//	return d;
//}

//int main() {
//	int year = 0;
//	int month = 0;
//	scanf("%d %d", &year, &month);
//	int d = get_days_of_month(year,month);
//	printf("%d\n", d);
//	return 0;
//}

////函数的嵌套
//int main() {
//	printf("%zd", strlen("abcdef"));
//	return 0;
//}
//
////以上代码等同于这个形式
//
//int main() {
//	size_t  a = strlen("abcdef");
//	printf("%zd", a);
//	return 0;
//}


////printf函数的返回值为打印的字符的个数
//int main() {
//	printf("%d", printf("%d", printf("%d", 43)));
//	printf("\n");
//	printf("%d", printf("%d", printf("%d\n", 43)));
//	return 0;
//}

////函数如果在调用之后定义，应先声明再调用。
//int is_leap_year(int y);
//
//int main() {
//	int year = 0;
//	scanf("%d", &year);
//	if (is_leap_year(year)) 
//		printf("是闰年\n");
//	else
//		printf("不是闰年\n");
//	
//}
//
//int is_leap_year(int y)
//{
//	if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//		return 1;
//	else
//		return 0;
//}
// 


//把函数放入头文件，并包含该头文件调用函数
//#include"add.h"
//int main() {
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	 int r = add(a, b);
//	printf("%d", r);
//	return 0;
//}



////static改变变量的生命周期
//void test() {
//	int a = 1;
//	a++;
//    printf("%d", a);
//}
//
//int main()
//{
//	int i = 0;
//	for (i = 0;i < 5;i++) {
//		test();
//	}
//	return 0;
//}
//
//
////加上static后
//void test() {
//	static int a = 1;
//	a++;
//	printf("%d", a);
//}
//
//int main()
//{
//	int i = 0;
//	for (i = 0;i < 5;i++) {
//		test();
//	}
//	return 0;
//}

extern int a;
int main() {
	printf("%d\n", a);
	return 0;
}

